package com.joker.demo.admin.domain.po;

import com.baomidou.mybatisplus.annotation.TableName;
import com.joker.demo.core.domain.enums.JobRunStatusEnum;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;

/**
 * 任务日志实体类
 *
 * @author feixiang.li
 * @since 2025/7/23
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("t_job_log")
public class JobLogPO extends BaseEntity {

    /**
     * 任务ID 对应job_info表的id
     */
    private Long jobId;

    /**
     * 用于任务流程，记录当前任务依赖的上一个任务ID
     * 同一个任务流的 flowId 会一致
     */
    private Integer flowId;

    /**
     * 下一个任务日志ID。
     * 如果没有下一步任务，则该字段为null
     */
    private Long nextJobLogId;

    /**
     * 触发时间
     */
    private Date triggerTime;

    /**
     * 执行状态
     * {@link JobRunStatusEnum}
     */
    private Integer triggerCode;

    /**
     * 触发日志
     */
    private String triggerMsg;

    /**
     * 任务实际执行开始时间
     */
    private Date startTime;

    /**
     * 任务实际执行结束时间
     */
    private Date endTime;

    /**
     * 执行器地址
     */
    private String executorAddress;

    /**
     * 执行器Handler
     */
    private String executorHandler;

    /**
     * 执行器分片索引
     */
    private Integer executorShardingIndex;

    /**
     * 分片参数
     */
    private String executorShardingParam;

    /**
     * 失败重试次数-第一次失败重试
     */
    private Integer executorFailRetryCount;

    /**
     * 告警状态:0-默认,1-无需告警,2-告警成功,3-告警失败
     */
    private Integer alarmStatus;

    /**
     * 耗时(ms)
     */
    private Long timeCost;
} 